Apparatus and method for controlling page break position

ABSTRACT

This invention has as its object to provide an image processing apparatus and method which can reliably and appropriately insert a page break by a simple process. To accomplish this, it is checked if the number of lines transferred to a printer is smaller than a page break reference line count N. N is a value equal to or smaller than a value obtained by subtracting the number of vertical dots of a maximum font that a browse task can rasterize from a maximum recordable line count Max. When data for the page break reference line count N or more have been transferred to the printer, it is checked if data of the transferred line has the same color. If the data for one line have the same color, it can be determined that the line does not contain any character (the spacing between neighboring lines). Hence, if a page break is inserted at that line, characters can be prevented from being printed across two pages.

FIELD OF THE INVENTION

[0001] The present invention relates to an image processing apparatus and, more particularly, to an image processing apparatus which can record a document on cut sheets.

BACKGROUND OF THE INVENTION

[0002] Conventionally, a technique for controlling a page break position so as not to break characters in such image processing apparatus has been proposed.

[0003] For example, as a recording method of an HTML file, a method of rasterizing an HTML file in a reduced scale to fall within a recording range, or a method of putting characters which may break at a page break position into the next page is known, as disclosed in Japanese Patent Laid-Open No. 11-15749. Also, as a facsimile recording method, a method of searching for a full blank line closest to a printable maximum line so as not to break characters at a page break position on a given received facsimile page, and breaking a page at the found full blank line is known, as disclosed in Japanese Patent Laid-Open No. 7-58940.

[0004] However, in Japanese Patent Laid-Open No. 11-15749, a rasterization process in a reduced scale and a process for putting characters into the next page must be done upon rasterizing an HTML file. Also, in Japanese Patent Laid-Open No. 7-58940, a page break position cannot be determined until data are rasterized up to a maximum number of recordable lines.

[0005] For this reason, in Japanese Patent Laid-Open No. 11-15749, a rasterization process for display and that for print must be independently done, or the rasterization process for print must be taken into consideration upon executing the rasterization process for display. Also, upon application of Japanese Patent Laid-Open No. 7-58940, data must be rasterized up to a maximum number of recordable lines, and a large buffer size and complicated processes are required.

SUMMARY OF THE INVENTION

[0006] Accordingly, an object of the present invention is to provide an apparatus and method, which can reliably and appropriately insert a page break by a simple process.

[0007] According to the present invention, the foregoing object is attained by providing an image processing apparatus for determining a page break position on the basis of image data to be printed, comprising detection means for detecting a line, which is formed of only pixels contained within a predetermined color range, in a predetermined image region located at a trailing end of a page, and determination means for determining the line detected by the detection means as a page break position.

[0008] Other features and advantages of the present invention will be apparent from the following description taken in conjunction with the accompanying drawings, in which like reference characters designate the same or similar parts throughout the figures there.

BRIEF DESCRIPTION OF THE DRAWINGS

[0009]FIG. 1 is a block diagram showing a facsimile apparatus 100 with a Web browser function according to an embodiment of the present invention;

[0010]FIG. 2 is a chart showing an example of the flow of data processes in the embodiment;

[0011]FIG. 3 is a flow chart showing the Web print operation of a browse task in the embodiment;

[0012]FIG. 4 is a flow chart showing the Web print operation of a print task in the embodiment;

[0013]FIG. 5 is a chart showing an example of the flow of data processes of a facsimile apparatus with a Web browser function according to the second embodiment of the present invention;

[0014]FIG. 6 is a flow chart showing the Web print operation of a browse task of the second embodiment;

[0015]FIG. 7 is a flow chart showing the Web print operation of a data conversion task of the second embodiment; and

[0016]FIG. 8 is a flow chart showing the Web print operation of a print task of the second embodiment.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0017] Preferred embodiments of the present invention will now be described in detail with reference to the drawings. It should be noted that the relative arrangement of the components, the numerical expressions and numerical values set forth in these embodiments do not limit the scope of the present invention unless it is specifically stated otherwise.

[0018] (First Embodiment)

[0019] A cut sheet type facsimile apparatus with a Web browser function will be described hereinafter as an embodiment of the present invention.

[0020]FIG. 1 is a block diagram showing a facsimile apparatus 100 with a Web browser function according to an embodiment of the present invention.

[0021] Referring to FIG. 1, reference numeral 108 denotes a communication line. Upon Web browsing, the apparatus establishes connection to an IP network via an IP network provider by way of the communication line 108. Upon facsimile communications, the apparatus communicates with a partner terminal via the communication line 108.

[0022] Reference numeral 101 denotes an NCU which is used to establish connection to the IP network provider and partner terminal via the communication line 108. The apparatus of this embodiment is connected to the communication line 108 via the NCU 101. Assume that the NCU 101 has a function of electrically isolating between the communication line 108 side and the interior of the apparatus, a function of seizing/releasing a line, outputting dial pulses/tones, and monitoring a line in accordance with instructions from a controller 104, a facsimile modem function, a data modem function, and the like.

[0023] Reference numeral 102 denotes a RAM which stores a reception buffer, display buffer, recording buffer, phone directory data, control data, and the like.

[0024] Reference numeral 103 denotes a ROM which stores a control program of the controller 104, and initial values of various setups.

[0025] Reference numeral 104 denotes a controller which comprises a microprocessor or the like, and controls the functional blocks shown in FIG. 1 in accordance with a program stored in the ROM 103.

[0026] Reference numeral 105 denotes an operating unit which comprises a keyboard, pointing device, and the like, and forms a user interface together with a display unit 106 (to be described later). The operating unit 105 accepts operator's Web browse operation, print operation, those associated with call origination/call reception/registration, and the like, and notifies the controller 104 of operator's operations.

[0027] Reference numeral 106 denotes a display unit which displays information that the operator is to be informed such as Web browse display, a dial number upon originating a call, status of the apparatus, and the like.

[0028] Reference numeral 107 denotes a loudspeaker which is used to monitor a speech signal on the line, to call an operator, and to generate operation or error tones. In order to output such speech from the loudspeaker 107, a speech synthesis circuit, amplifier, and the like are used.

[0029]FIG. 2 shows an example of the flow of data processes of this embodiment.

[0030] A communication control process 201 stores data coming from the communication line 108 in a reception buffer 202. The reception buffer 202 stores data for one Web page.

[0031] A browse task 203 converts data for one Web page, which is stored in the reception buffer 202 and is described in a markup language, into display data, and stores a given size of data, which can be simultaneously displayed on the display unit, of the converted data in a display buffer 204. Upon completion of storage of data in the display buffer 204, the browser task 203 sends a storage end message to a print task 205.

[0032] Upon receiving the storage end message, the print task 205 reads out data from the display buffer 204, converts the readout data into print data for each line, and transfers the print data to a printer 206. Upon completion of transfer, the print task 205 sends a transfer end message to the browser task 203. Upon reception of the transfer end message, the browser task 203 stores the next display data in the display buffer 204 if such data remains, and sends a storage end message to the print task 205. On the other hand, if the data for one Web page have been stored, and no next display data remains, the browser task 203 sends a page end message to the print task 205. By repeating the above processes, data for one page are transferred to the printer 206, thus implementing a Web print process.

[0033] The reason why data is transferred from the browser task 203 to the print task 205 via the display buffer 204 for each data size that can be displayed at the same time is to commonize a Web browse display process and Web print process.

[0034] A detailed description will be given using the flow charts shown in FIGS. 3 and 4.

[0035]FIG. 3 is a flow chart showing the Web print operation of the browser task 203 of this embodiment.

[0036] It is checked in step S301 if data for one Web page is received by the reception buffer 202. If YES in step S301, the flow advances to step S302; if NO in step S301, step S301 is executed again to wait for reception of data.

[0037] In step S302, the received data for one page is converted into display data, and the flow advances to step S303.

[0038] In step S303, the converted display data begins to be stored in the display buffer. If it is determined in step S312 that display data with a size for one frame that can be displayed by the display unit 106 or all converted display data are stored in the display buffer 204, the flow advances to step S304, and a storage end message is sent to the print task 205. If the display data is not stored yet, the flow returns to step S303 to continue the storage process.

[0039] In this case, the total number of lines contained in the display data stored in the display buffer 204 is appended as additional information to the storage end message to be sent.

[0040] It is checked in step S305 if a transfer end message is received from the print task 205.

[0041] Note that the transfer end message indicates that the print task 205 has transferred all display data stored in the display buffer 204 to the printer 206. Hence, upon receiving this transfer end message, the control starts a process for storing next display data in the display buffer 204.

[0042] That is, the flow advances to step S307 to check if all display data have already been stored in the display buffer 204. If display data to be stored in the display buffer 204 still remain, the flow returns to step S303 to newly store the next display data in the display buffer 204.

[0043] If it is determined in step S307 that all display data for one Web page have been stored in the display buffer 204 and have been transferred to the printer, the flow advances to step S308, and a page end message is sent to the print task 205.

[0044] Prior to descriptions of step S306 and steps S309 to S311, the process by the print task 205 will be explained below using FIG. 4.

[0045]FIG. 4 is a flow chart showing the Web print operation of the print task 205 of this embodiment.

[0046] In step S401, various counters and the like are initialized. Zero is substituted in control variable LineCnt, and the head position of the display buffer is set at the read start position from the display buffer in case of recording of one Web page onto the first recording sheet.

[0047] It is checked in step S402 if the storage end message is received from the browser task 203. If YES in step S402, the flow advances to step S404.

[0048] In step S404, data for one line is read out from the display buffer, and is converted into print data. In step S405, the data for one line, which has been converted in step S404, is transferred to the printer 206, and the flow advances to step S406. In step S406, control variable LineCnt is incremented by “1”.

[0049] It is checked in step S413 if control variable LineCnt is smaller than Max. Note that Max is a maximum recordable line count per page of recording sheets. If the number of processed lines is equal to or larger than the maximum recordable line count Max at that time, the flow advances to step S411 to send a page break message to the browser task 203. At the same time, a page break instruction is sent to the printer 206 to quit the print task 205 in step S412. That is, the print task 205 is launched and quitted for each page of recording sheets.

[0050] If it is determined in step S413 that control variable LineCnt is smaller than Max, lines that can be recorded on a recording sheet still remain. In this case, the flow advances to step S407 to check if control variable LineCnt is smaller than N. If YES in step S407, the flow jumps to step S408; otherwise, the flow advances to step S410. Note that N is a page break reference line count, and is a value obtained by subtracting the number of vertical dots of a maximum font that can be rasterized by the browser task from the maximum recordable line count Max, or a value slightly smaller than that value. For example, in case of an A4 size, if the maximum recordable line count is 3800 and the number of vertical dots of a maximum font is 120, N is set to be 3680 or less. In this manner, if it is checked in step S410 whether or not page break is required when the number of lines of the remaining recording region becomes equal to or smaller than the number of vertical dots of a maximum font, characters are never printed across two recording sheets.

[0051] It is checked in step S408 using the number of stored lines contained in the storage end message received in step S403 if display data stored in the display buffer have been transferred to the printer 206. If transfer is complete, the flow advances to step S409; otherwise, the flow returns to step S404 to transfer data for the next line. In step S409, a transfer end message is sent to the browser task 203. The flow then returns to step S402 to wait for storage of the next data.

[0052] On the other hand, if data for the page break reference line count N or more have been transferred to the printer, the flow advances from step S407 to step S410 to check if all transferred data of one line have the same color. If all data for one line have the same color, it can be determined that no characters are contained in that line (the spacing between neighboring lines). Hence, if a page break is inserted at that line, characters can be prevented from being printed across two pages. Despite a monochrome or color page, if all data for one line have the same color, it can be determined that they correspond to a background, and a line to break a page can be determined.

[0053] Hence, if all data for one line have the same color, the flow advances to step S411 to pass a page break message to the browser task 203. At the same time, a page break code is output to the printer 206 in step S412, thus ending the process.

[0054] If it is determined in step S410 that all data for one line do not have the same color, it is determined that this line includes characters or a pattern. Hence, the flow advances to step S408 to process the next line.

[0055] In this manner, display data stored in the display buffer are processed, and upon receiving a page end message from the browser task 203, the flow advances from step S402 to step S403 to end the process of the print task 205.

[0056] If no page end message is received, the flow returns from step S403 to step S402 to wait for reception of a storage end message.

[0057] If the print task 205 inserts a page break, a page break message is sent to the browser task 204 in place of the transfer end task. In the browser task 204, the flow advances from step S305 to step S309 via step S306 in FIG. 3. The page break message contains information that pertains to the last recording line in the display buffer. That is, the print task 205 passes the page break message which contains the position of display data in the display buffer, which is converted into print data immediately before a page break, to the browser task 204.

[0058] In step S309, the last recording line in the display buffer, which is contained in the page break message is stored. The control waits for the end of the print task (e.g., the end of the process in step S412) in step S310, and launches the print task again in step S311. In this case, a value is passed to the print task 205 so that a line next to the last recording line stored in step S309 becomes a recording start line in the display buffer. That is, upon recording on the second or subsequent recording sheet, a line next to the last recording line stored in step S309 is set to be the read start position from the display buffer in step S401. In this manner, when one Web page cannot be recorded on a single recording sheet, recording on the second recording sheet can start from a line next to the last recording line of the first sheet on the display buffer, which is stored in step S309.

[0059] After the print task 205 is launched again in step S311, the flow returns to step S304 to send a storage end message again. In this manner, in the print task 205, the flow advances from step S401 to step S404 via step S402, thus generating printer data for the first line of the next page.

[0060] With the aforementioned processes, upon printing a document on a Web, which is described using a markup language, when the number of lines which have been transferred to the printer becomes equal to or larger than a threshold value obtained by subtracting the vertical size (the number of dots) of a maximum font from the number of lines that can be recorded on one page, it is checked if all pixel data contained in one line to be transferred to the printer have the same color. If all pixel data have the same color, a page break instruction is output to the printer. In this manner, characters can be easily prevented from being broken at a page break position by executing a checking process for each line.

[0061] In the above embodiment, whether or not a page break is to be inserted is determined by examining if all pixel data contained in one line have the same color. However, the present invention is not limited to such specific process. For example, if all pixel data contained in one line fall within a predetermined density or color range, page break control may be done.

[0062] (Second Embodiment)

[0063] A cut sheet type facsimile apparatus with a Web browser function according to the second embodiment of the present invention will be described hereinafter.

[0064] Since the hardware arrangement of the facsimile apparatus of this embodiment is the same as that of the first embodiment, a description thereof will be omitted.

[0065]FIG. 5 shows an example of the flow of processes in the facsimile apparatus with a Web browser function according to the second embodiment.

[0066] A communication control process 501 stores data coming from the communication line 108 in a reception buffer 502. The reception buffer 502 stores data for one Web page.

[0067] A browse task 503 converts data for one Web page, which is stored in the reception buffer 502 and is described in a markup language, into display data, and stores a given size of data, which can be simultaneously displayed on the display unit, of the converted data in a display buffer 504. Upon completion of storage of data in the display buffer 504, the browser task 503 sends a storage end message to a data conversion task 505.

[0068] Upon reception of the storage end message, the data conversion task 505 reads out data from the display buffer 504, converts the readout data into print data for each line after it confirms that a print buffer 506 has a free space, and transfers the converted data to the print buffer 506. Upon completion of transfer, the task 505 sends a transfer end message to the browser task 503. Upon reception of the transfer end message, the browser task 503 stores the next display data in the display buffer 504 if such data remains, and sends a storage end message to the data conversion task 505. On the other hand, if the data for one Web page have been stored, and no next display data remains, the browser task 503 sends a page end message to the data conversion task 505. Upon reception of the page end message, the data conversion task sends a page end message to a print task 507.

[0069] The print task 507 reads out data and executes a print process of the readout data if data are stored in the print buffer. If no data is stored in the print buffer, the print task confirms if a page end message is received. If the page end message is received, the print task ends a print process. If data read out from the print buffer is a page break code, the print task executes a page break process; if it is print data, it executes a print process.

[0070] By repeating the aforementioned processes, data for one page is printed, thus implementing a Web print process.

[0071] The reason why data is transferred from the browser task 503 to the data conversion task 505 via the display buffer 504 for each data size that can be displayed at the same time is to commonize a Web browse display process and Web print process.

[0072] A detailed description will be given using the flow charts shown in FIGS. 6, 7, and 8.

[0073]FIG. 6 is a flow chart showing the Web print operation of the browser task 503 of this embodiment.

[0074] It is checked in step S601 if data for one Web page is received in the reception buffer 502. If YES in step S601, the flow advances to step S602; otherwise, step S601 is executed again to wait for data reception.

[0075] In step S602, the received data for one page is converted into display data, and is stored in the display buffer 504. The flow then advances to step S603.

[0076] In step S603, a storage end message is sent to the data conversion task 505.

[0077] In this case, the total number of lines contained in the display data stored in the display buffer 504 is appended as additional information to the storage end message to be sent.

[0078] It is checked in step S604 if a transfer end message is received from the data conversion task 505.

[0079] Note that the transfer end message indicates that the data conversion task 505 has converted all display data stored in the display buffer 504 into print data and has stored them in the print buffer.

[0080] Hence, upon receiving this transfer end message, the control starts a process for storing next display data in the display buffer 504.

[0081] That is, the flow advances to step S605 to check if all display data have already been stored in the display buffer 504. If display data to be stored in the display buffer 504 still remain, the flow returns to step S602 to newly store the next display data in the display buffer 504.

[0082] If it is determined in step S605 that all display data for one Web page have been stored in the display buffer 504 and have been transferred to the print buffer, the flow advances to step S606, and a page end message is sent to the data conversion task 505, thus ending the print process for one Web page.

[0083]FIG. 7 is a flow chart showing the Web print process of the data conversion task 505 of this embodiment.

[0084] In step S701, various counters and the like are initialized. Zero is substituted in control variable LineCnt, the head position of the display buffer is set at the read start position from the display buffer, and the head position of the print buffer is set at the write start position to the print buffer.

[0085] It is checked in step S702 if the storage end message is received from the browser task 503. If YES in step S702, the flow advances to step S703.

[0086] Whether or not data to be converted remain stored in the display buffer is determined in step S703 on the basis of the display buffer read position, and the total number of lines appended to the storage end message as additional information. If data to be converted still remain, the flow advances to step S704; if no data to be converted remain, and all data stored in the display buffer have been processed, the flow advances to step S710.

[0087] It is checked in step S704 if the print buffer 506 has a free space for storing print data. If NO in step S704, the control repeats steps S703 and S704 and waits until a free space is formed by the process of the print task. If YES in step S704, the flow advances to step S705.

[0088] In step S705, data for one line is read out from the display buffer, and is converted into print data, which is stored in the print buffer 506. Then, control variable LineCnt is incremented by “1”.

[0089] It is checked in step S706 if control variable LineCnt is smaller than a predetermined value N. Note that N is a page break reference line count, and is a value obtained by subtracting the number of vertical dots of a maximum font that can be rasterized by the browser task from the maximum recordable line count Max, or a value slightly smaller than that value. For example, in case of an A4 size, if the maximum recordable line count is 3800 and the number of vertical dots of a maximum font is 120, N is set to be 3680 or less. If YES in step S706, the flow advances to step S707 to execute a page break determination process in step S707 and subsequent steps. In this manner, if it is checked whether or not page break is required when the number of lines of the remaining recording region becomes equal to or smaller than the number of vertical dots of a maximum font, characters are never printed across two recording sheets.

[0090] It is checked in step S707 if all print data for one line, which are lastly stored in the print buffer 506, have the same color. If all data for one line have the same color, it can be determined that no characters are contained in that line (the spacing between neighboring lines). Hence, if a page break is inserted at that line, characters can be prevented from being printed across two pages. Despite a monochrome or color page, if all data for one line have the same color, it can be determined that they correspond to the background, and a line to break a page can be determined.

[0091] Hence, if all data for one line have the same color, the flow advances to step S708 to store a page break code in the print buffer 506 to make the print task execute a page break process. Then, 0 is substituted in control variable LineCnt for the next determination process. If all data for one line do not have the same color, the flow advances to step S709.

[0092] It is checked in step S709 if control variable LineCnt is smaller than Max. Note that Max is a maximum recordable line count per page of recording sheets. If the number of processed lines is equal to or larger than the maximum recordable line count Max at that time, the flow advances to step S708 to store a page break code in the print buffer 506 to make the print task execute a page break process.

[0093] Since it is determined that all data stored in the display buffer have been processed, a transfer end message is sent to the browser task 503 in step S710.

[0094] It is checked in step S711 if a storage end message of display data in the display buffer is received from the browser task 503. If YES in step S711, the flow returns to step S703 to process display data stored in the display buffer 504. On the other hand, if NO in step S711, the flow advances to step S712.

[0095] It is checked in step S712 if a page end message which indicates that the process for one Web page is complete is received from the browser task 503. If YES in step S712, a page end message is sent to the print task 507 in step S713, thus ending the process of the data conversion task. However, if NO in step S712, the flow returns to step S711 to wait for a message from the browser task by repeating steps S711 and S712.

[0096]FIG. 8 is a flow chart showing the Web print operation of the print task 507 of this embodiment.

[0097] It is checked in step S801 if data to be processed remain in the print buffer 506. If such data remain, the flow advances to step S802; otherwise, the flow advances to step S805.

[0098] In step S802, data is read out from the print buffer 506, and it is checked if the readout data is a page break code. If YES in step S802, the flow advances to step S803 to execute a page break process which includes a discharge operation of a recording sheet whose recording is in progress, manipulation of various control variables, and the like. However, if NO in step S802, the flow advances to step S804.

[0099] In step S804, print data for one line is read from the print buffer 506, and a print process is executed.

[0100] It is checked in step S805 if a page end message is received from the data conversion task 505. If NO in step S805, the flow returns to step S801 to wait for storage of print data or a page end message from the data conversion task by repeating steps S801 and S805. If YES in step S805, the process of the print task ends.

[0101] As described above, according to the second embodiment, since the print buffer for several lines is inserted between the display buffer and printer, and the data conversion task is added, the same effect as in the above embodiment can be obtained even when a page break instruction is issued after data for several lines are stored in the memory.

[0102] With the aforementioned processes, upon printing a document on a Web, which is described using a markup language, when the number of lines which have been transferred to the printer becomes equal to or larger than a threshold value obtained by subtracting the vertical size (the number of dots) of a maximum font from the number of lines that can be recorded on one page, it is checked if all pixel data contained in one line to be transferred to the printer have the same color. If all pixel data have the same color, a page break instruction is output to the printer. In this manner, characters can be easily prevented from being broken at a page break position by executing a checking process for each line.

[0103] In the above embodiment, whether or not a page break is to be inserted is determined by examining if all pixel data contained in one line have the same color. However, the present invention is not limited to such specific process. For example, if all pixel data contained in one line fall within a predetermined density or color range, or if a repetition of a predetermined pattern of lines is detected, page break control may be done.

[0104] Furthermore, whether or not page break determination is to be made is determined in step S407 or S706 by checking if LineCnt is equal to or larger than N. Alternatively, the printer may include a detection means (sensor or the like) which detects the leading or trailing end of a recording sheet, and whether or not page break determination is to be made may be determined based on detection information of a recording sheet by this sensor. In this case, if the sensor has detected the leading end of a recording sheet but has not detected the trailing end yet, the flow advances to step S408 or S703; if the sensor has detected the trailing end after the leading end, the flow advances to step S410 or S707. Preferably, this sensor may be provided on the upstream of the recording position in the recording sheet convey direction, and a timing from when the sensor has detected the leading end of a recording sheet until the position of the recording sheet obtained by subtracting the maximum font size length from the maximum printable length of the printer may be calculated in advance or for each process. Then, whether or not page break determination is to be made may be determined using that timing, thus obtaining the same effect as in the above embodiments.

[0105] The sensor position may be determined so that print data output from the display buffer 204 or print buffer 506 at the detection timing of the trailing end of a recording sheet by the sensor forms a portion obtained by subtracting the maximum font size length from the maximum printable length of the printer, thus obtaining the same effect as in the above embodiments. In such case, page break determination may be done in response to detection of the trailing end of a recording sheet by the sensor as a trigger, and the above calculation can be omitted.

[0106] (Another Embodiment)

[0107] In each of the above embodiments, when the number of lines which have been transferred to the printer becomes equal to or larger than a threshold value obtained by subtracting the vertical size (the number of dots) of a maximum-size font from the number of lines that can be recorded on one page, the colors of pixel data contained in one line are checked. Note that the “maximum-size font” may be the maximum value of a font contained in that Web page. Before rasterizing data onto the display buffer, document data in a markup language may be interpreted to detect a font with the maximum size contained in that data.

[0108] Note that the present invention may be applied to either a system constituted by a plurality of devices (e.g., a host computer, interface device, reader, printer, and the like), or an apparatus consisting of a single equipment (e.g., a copying machine, facsimile apparatus, or the like).

[0109] The objects of the present invention are also achieved by supplying a storage medium (or recording medium), which records a program code of a software program that can implement the functions of the above-mentioned embodiments to the system or apparatus, and reading out and executing the program code stored in the storage medium by a computer (or a CPU or MPU) of the system or apparatus. In this case, the program code itself read out from the storage medium implements the functions of the above-mentioned embodiments, and the storage medium which stores the program code constitutes the present invention. The functions of the above-mentioned embodiments may be implemented not only by executing the readout program code by the computer but also by some or all of actual processing operations executed by an operating system (OS) running on the computer on the basis of an instruction of the program code.

[0110] Furthermore, the functions of the above-mentioned embodiments may be implemented by some or all of actual processing operations executed by a CPU or the like arranged in a function extension card or a function extension unit, which is inserted in or connected to the computer, after the program code read out from the storage medium is written in a memory of the extension card or unit.

[0111] According to the present invention, an image processing apparatus and method, and a control program which can reliably and appropriately insert a page break by a simple process can be provided.

[0112] As many apparently widely different embodiments of the present invention can be made without departing from the spirit and scope thereof, it is to be understood that the invention is not limited to the specific embodiments thereof except as defined in the appended claims. 

What is claimed is:
 1. An image processing apparatus for determining a page break position on the basis of image data to be printed, comprising: detection means for detecting a line, which is formed of only pixels contained within a predetermined color range, in a predetermined image region located at a trailing end of a page; and determination means for determining the line detected by said detection means as a page break position.
 2. The apparatus according to claim 1, wherein said detection means detects a line formed of only pixels of one color.
 3. The apparatus according to claim 1, wherein said detection means comprises: count means for counting the number of lines to be printed from a head of one page; first checking means for checking whether or not the accumulated number of lines counted by said count means exceeds a predetermined threshold value; and second checking means for checking whether or not the line formed of only pixels falling within the predetermined color range, is present after said first checking means determines that the accumulated number of lines has exceeded the threshold value.
 4. The apparatus according to claim 3, wherein the threshold value is not more than a value obtained by subtracting the number of lines required to record a font with a maximum size from the maximum number of lines that can be recorded per page.
 5. The apparatus according to claim 1, wherein said detection means comprises: sensor means for sensing a position of a recording sheet, and said detection means determines the predetermined image region on the basis of the position of the recording sheet sensed by said sensor means, and then detects the line.
 6. The apparatus according to claim 5, further comprising: a print buffer for storing print data, and wherein said sensor means is provided at a position where said sensor means senses a trailing end position of a recording sheet at a timing at which print data to be printed at a position calculated by subtracting the number of lines of a font with a maximum size from the maximum number of lines that can be recorded per page is stored in said print buffer, and said detection means starts detection of the line from said print buffer at the timing at which said sensor means senses the trailing end position of the recording sheet.
 7. The apparatus according to claim 1, further comprising: print means for printing on each page of a recording sheet on the basis of print data; and transmission means for transmitting the print data to said print means for each line, and wherein said detection means determines whether or not the print data for each line transmitted by said transmission means is formed of only pixels falling within the predetermined color range.
 8. The apparatus according to claim 1, further comprising: a print buffer for storing print data; and print means for printing on each page of a recording sheet on the basis of the print data stored in said print buffer, and wherein said detection means determines whether or not the print data for each line stored in said print buffer is formed of only pixels falling within the predetermined color range.
 9. The apparatus according to claim 1, further comprising: first conversion means for converting document data described in a markup language into display data; a display buffer for storing the display data; and second conversion means for converting the display data stored in said display buffer into print data.
 10. An image processing method for determining a page break position on the basis of image data to be printed, comprising: a detection step of detecting a line, which is formed of only pixels contained within a predetermined color range, in a predetermined image region located at a trailing end of a page; and a determination step of determining the line detected in the detection step as a page break position.
 11. The method according to claim 10, wherein, in said detection step, a line formed of only pixels of one color is detected.
 12. The method according to claim 10, wherein the detection step comprises: a count step of counting the number of lines to be printed from a head of one page; a first checking step of checking whether or not the accumulated number of lines counted in the count step exceeds a predetermined threshold value; and a second checking step of checking whether or not the line formed of only pixels falling within the predetermined color range, is present after it is determined in the first checking step that the accumulated number of lines has exceeded the threshold value.
 13. The method according to claim 12, wherein the threshold value is not more than a value obtained by subtracting the number of lines required to record a font with a maximum size from the maximum number of lines that can be recorded per page.
 14. The method according to claim 10, wherein the detection step comprises: a sensor step of sensing a position of a recording sheet, and the detection step includes a step of determining the predetermined image region on the basis of the position of the recording sheet sensed in the sensor step, and then detecting the line.
 15. The method according to claim 10, further comprising a transmission step of transmitting the print data to printing means for each line, and wherein the detection step includes a step of determining whether or not the print data for each line transmitted in the transmission step is formed of only pixels falling within the predetermined color range.
 16. The method according to claim 10, further comprising: a print step of printing on each page of a recording sheet on the basis of the print data stored in a print buffer, and wherein the detection step includes a step of determining whether or not the print data for each line stored in the print buffer is formed of only pixels falling within the predetermined color range.
 17. The method according to claim 10, further comprising: a first conversion step of converting document data described in a markup language into display data; and a second conversion step of converting the display data into print data.
 18. A program for making a computer implement an image processing method for determining a page break position on the basis of image data to be printed, said program making the computer execute: a detection step of detecting a line, which is formed of only pixels contained within a predetermined color range, in a predetermined image region located at a trailing end of a page; and a determination step of determining the line detected in the detection step as a page break position.
 19. A storage medium storing a program for making a computer implement an image processing method for determining a page break position on the basis of image data to be printed, said program making the computer execute: a detection step of detecting a line, which is formed of only pixels contained within a predetermined color range, in a predetermined image region located at a trailing end of a page; and a determination step of determining the line detected in the detection step as a page break position. 